//package com.zhuss.aop;
//
//import java.lang.reflect.Method;
//
//import org.aspectj.lang.JoinPoint;
//import org.aspectj.lang.annotation.Aspect;
//import org.aspectj.lang.annotation.Before;
//import org.aspectj.lang.annotation.Pointcut;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//
//import com.zhuss.appconfig.TokenProcessor;
//import com.zhuss.common.AbstractBo;
//
//@Aspect
//@Component
//public class TokenAspect {
//	
//	@Autowired
//	private TokenProcessor tokenProcessor;
//	
//	
//	@Pointcut("execution(public * com.zhuss.common.Processor.process(java.lang.Object))")
//	public void pointCut() {
//		
//	}
//	
//	@Before("pointCut()")
//	public void around(JoinPoint point) throws Throwable {
//		String targetName = point.getTarget().getClass().getName();
//        // String methodName = point.getSignature().getName();
//        Object[] arguments = point.getArgs();
//        Object obj = arguments[0];
//        Class<?> targetClass = Class.forName(targetName);
//        Method[] methodList = targetClass.getDeclaredMethods();
//        for (Method m : methodList) {
//        	if (m.getName().equals("check")
//        			|| m.getName().equals("process")
//        				|| m.getName().equals("log")) {
//        		if (obj instanceof AbstractBo) {
//        			AbstractBo bo = (AbstractBo) obj;
//        			String token = bo.getConcurrentToken();
//        			Integer system = bo.getConcurrentSystem();
//        			Long userId = tokenProcessor.getUserId(token);
//        			bo.setConcurrentUserId(userId);
//        			Long concurrentUserId = bo.getConcurrentUserId();
//        			if ((concurrentUserId == null || concurrentUserId < 0l) && token != null) {
//        				// throw new DzcxException(ExceptionCode.token过期);
//        			}
//        		}
//        	}
//        }
//       /* Object object = point.proceed();
//        return object;*/
//	}
//
//}
